package sopa.java.misc;

import java.io.File;

import sopa.java.io.Files;

public class Hex
{
    public static String format(byte[] data)
    {
        final StringBuilder result = new StringBuilder();
        int n = 0;
        for (byte b : data)
        {
            if (n % 16 == 0)
            {
                result.append(String.format("%05X: ", n));
            }
            result.append(String.format("%02X ", b));
            n++;
            if (n % 16 == 0)
            {
                result.append("\n");
            }
        }
        result.append("\n");
        return result.toString();
    }

    public static void main(String[] args) throws Exception
    {
        System.out.println(format(Files.readBinary((new File(args[0])))));
    }
}